home *** CD-ROM | disk | FTP | other *** search
Wrap
import java.applet.Applet; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Event; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.MediaTracker; import java.awt.Rectangle; import java.net.MalformedURLException; import java.net.URL; import java.util.Vector; public final class ET_TextMenu extends Applet implements Runnable { static final boolean REG_VERSION = false; // $FF: renamed from: RT java.lang.String static final String field_0 = "(This applet is not for commercial use. Visit http://www.entanke.se/ for information and more applets.)"; static final String APPLETINFO = "ET Text Menu v1.1. Visit http://www.entanke.se/ for information and more applets."; Image offScreenImage; Dimension offScreenSize; Graphics offScreenGraphics; Graphics appletGraphics; private Thread kicker; static final int S_NORMAL = 0; static final int S_OVER = 1; static final int S_CLICK = 2; static final String DEF_TEXT = "No TEXT parameter given."; static final int DEF_COLOR = 0; static final int DEF_OVERCOLOR = 255; static final int DEF_CLICKCOLOR = 16711680; static final int DEF_BGCOLOR = 16777215; static final String DEF_FONTNAME = "TimesRoman"; static final int DEF_FONTSIZE = 13; static final int DEF_FONTSTYLE = 0; static final URL DEF_URL = null; static final URL DEF_BGIMAGE = null; static final String DEF_TARGETFRAME = "_self"; static final String DEF_ALT = null; static final String DEF_ALIGN = "Center"; static final int DEF_XMARGIN = 0; static final int DEF_YMARGIN = 0; Vector parText = new Vector(); Vector parURL = new Vector(); Vector parTargetFrame = new Vector(); Vector parALT = new Vector(); Vector parAlign = new Vector(); Vector parColor = new Vector(); Vector parOverColor = new Vector(); Vector parClickColor = new Vector(); Vector parFont = new Vector(); Vector parXMargin = new Vector(); Vector parYMargin = new Vector(); URL parBGImage; Integer parBGColor; Color BGColor; Image BGImage; boolean BGImageLoaded = false; Vector activeRectangle = new Vector(); Vector activeDescent = new Vector(); static final int OVER_NONE = -1; static final int MOUSE_UP = 0; static final int MOUSE_DOWN = 1; int statLastOver = -1; int statLastMouse = 0; public void init() { Dimension var1 = ((Component)this).size(); this.offScreenImage = ((Component)this).createImage(var1.width, var1.height); this.offScreenSize = var1; this.offScreenGraphics = this.offScreenImage.getGraphics(); this.appletGraphics = ((Component)this).getGraphics(); this.parBGImage = this.getURLParameter("BGImage", (URL)null); this.parBGColor = this.getIntegerParameter("BGColor", new Integer(16777215), 16); this.BGColor = new Color(this.parBGColor); boolean var2 = true; for(int var3 = 1; var2; ++var3) { if (var3 == 1) { this.parText.addElement(this.getStringParameter("Text1", "No TEXT parameter given.")); this.parURL.addElement(this.getURLParameter("URL1", (URL)null)); this.parTargetFrame.addElement(this.getStringParameter("TargetFrame1", "_self")); this.parALT.addElement(this.getStringParameter("ALT1", (String)null)); this.parAlign.addElement(this.getStringParameter("Align1", "Center")); this.parXMargin.addElement(this.getIntegerParameter("XMargin1", new Integer(0), 10)); this.parYMargin.addElement(this.getIntegerParameter("YMargin1", new Integer(0), 10)); this.parColor.addElement(this.getIntegerParameter("Color1", new Integer(0), 16)); this.parOverColor.addElement(this.getIntegerParameter("OverColor1", new Integer(255), 16)); this.parClickColor.addElement(this.getIntegerParameter("ClickColor1", new Integer(16711680), 16)); this.parFont.addElement(this.getFontParameter("FontName1", "FontStyle1", "FontSize1", new Font("TimesRoman", 0, 13))); } else if (this.getStringParameter("Text" + var3, (String)null) != null) { this.parText.addElement(this.getStringParameter("Text" + var3, (String)this.parText.elementAt(var3 - 2))); this.parURL.addElement(this.getURLParameter("URL" + var3, (URL)null)); this.parTargetFrame.addElement(this.getStringParameter("TargetFrame" + var3, (String)this.parTargetFrame.elementAt(var3 - 2))); this.parALT.addElement(this.getStringParameter("ALT" + var3, (String)null)); this.parAlign.addElement(this.getStringParameter("Align" + var3, (String)this.parAlign.elementAt(var3 - 2))); this.parXMargin.addElement(this.getIntegerParameter("XMargin" + var3, (Integer)this.parXMargin.elementAt(var3 - 2), 10)); Vector var10000 = this.parYMargin; String var4 = "YMargin" + var3; var10000.addElement(this.getIntegerParameter(var4, new Integer(0), 10)); this.parColor.addElement(this.getIntegerParameter("Color" + var3, (Integer)this.parColor.elementAt(var3 - 2), 16)); this.parOverColor.addElement(this.getIntegerParameter("OverColor" + var3, (Integer)this.parOverColor.elementAt(var3 - 2), 16)); this.parClickColor.addElement(this.getIntegerParameter("ClickColor" + var3, (Integer)this.parClickColor.elementAt(var3 - 2), 16)); this.parFont.addElement(this.getFontParameter("FontName" + var3, "FontStyle" + var3, "FontSize" + var3, (Font)this.parFont.elementAt(var3 - 2))); } else { var2 = false; } } int var5 = 0; for(int var6 = 0; var6 < this.parText.size(); ++var6) { this.appletGraphics.setFont((Font)this.parFont.elementAt(var6)); FontMetrics var11 = this.appletGraphics.getFontMetrics(this.appletGraphics.getFont()); int var7 = var5 + (Integer)this.parYMargin.elementAt(var6); var5 = var7 + var11.getHeight(); int var8 = var11.stringWidth((String)this.parText.elementAt(var6)); int var10 = (Integer)this.parXMargin.elementAt(var6); int var9; if (((String)this.parAlign.elementAt(var6)).equalsIgnoreCase("Left")) { var9 = var10; } else if (((String)this.parAlign.elementAt(var6)).equalsIgnoreCase("Right")) { var9 = ((Component)this).size().width - var8 - var10; } else { var9 = (((Component)this).size().width - var8) / 2 + var10; } this.activeRectangle.addElement(new Rectangle(var9, var7, var8, var11.getHeight())); this.activeDescent.addElement(new Integer(var11.getDescent())); } this.drawText(0, 0, this.offScreenGraphics); this.offScreenGraphics.setColor(this.BGColor); this.offScreenGraphics.fillRect(0, 0, this.offScreenSize.width, this.offScreenSize.height); for(int var12 = 0; var12 < this.parText.size(); ++var12) { this.drawText(var12, 0, this.offScreenGraphics); } Graphics var13 = this.appletGraphics; var13.drawImage(this.offScreenImage, 0, 0, this); } private Integer getIntegerParameter(String var1, int var2, int var3) { return this.getIntegerParameter(var1, new Integer(var2), var3); } private Integer getIntegerParameter(String var1, Integer var2, int var3) { String var4 = ((Applet)this).getParameter(var1); try { Integer var5 = new Integer(Integer.parseInt(var4, var3)); return var5; } catch (NumberFormatException var6) { return var2; } } private String getStringParameter(String var1, String var2) { String var3 = ((Applet)this).getParameter(var1); return var3 == null ? var2 : var3; } private URL getURLParameter(String var1, URL var2) { String var3 = this.getStringParameter(var1, (String)null); try { URL var4 = new URL(((Applet)this).getDocumentBase(), var3); return var4; } catch (MalformedURLException var5) { return var2; } } private Font getFontParameter(String var1, String var2, String var3, Font var4) { String var5 = this.getStringParameter(var1, var4.getName()); String var6 = this.getStringParameter(var2, ""); int var7 = var4.getSize(); var7 = this.getIntegerParameter(var3, new Integer(var7), 10); int var8 = var4.getStyle(); if (var6.equalsIgnoreCase("Plain")) { var8 = 0; } if (var6.equalsIgnoreCase("Bold")) { var8 = 1; } if (var6.equalsIgnoreCase("Italic")) { var8 = 2; } if (var6.equalsIgnoreCase("BoldItalic")) { var8 = 3; } return new Font(var5, var8, var7); } public String getAppletInfo() { return "ET Text Menu v1.1. Visit http://www.entanke.se/ for information and more applets."; } public void start() { if (this.kicker == null) { this.kicker = new Thread(this); this.kicker.start(); } ((Applet)this).showStatus("ET Text Menu v1.1. Visit http://www.entanke.se/ for information and more applets."); } public void stop() { if (this.kicker != null && this.kicker.isAlive()) { this.kicker.stop(); } this.kicker = null; } public void run() { if (this.parBGImage != null) { this.BGImage = ((Applet)this).getImage(this.parBGImage); if (this.BGImage != null) { MediaTracker var1 = new MediaTracker(this); var1.addImage(this.BGImage, 1); try { var1.waitForID(1); } catch (InterruptedException var3) { } this.offScreenGraphics.drawImage(this.BGImage, 0, 0, this); this.BGImageLoaded = true; for(int var2 = 0; var2 < this.parText.size(); ++var2) { this.drawText(var2, 0, this.offScreenGraphics); } } } Graphics var4 = ((Component)this).getGraphics(); var4.drawImage(this.offScreenImage, 0, 0, this); } public final void update(Graphics var1) { var1.drawImage(this.offScreenImage, 0, 0, this); } public final void paint(Graphics var1) { var1.drawImage(this.offScreenImage, 0, 0, this); } private final void updateText(int var1, int var2) { if (this.statLastOver != var1) { if (var1 != -1 && this.parALT.elementAt(var1) != null) { ((Applet)this).showStatus((String)this.parALT.elementAt(var1) + " " + "(This applet is not for commercial use. Visit http://www.entanke.se/ for information and more applets.)"); } else { ((Applet)this).showStatus("(This applet is not for commercial use. Visit http://www.entanke.se/ for information and more applets.)"); } } if (this.statLastOver != var1) { this.drawText(this.statLastOver, 0, this.offScreenGraphics); if (this.statLastMouse == 1) { this.drawText(var1, 2, this.offScreenGraphics); } else { this.drawText(var1, 1, this.offScreenGraphics); } this.statLastOver = var1; Graphics var3 = this.appletGraphics; var3.drawImage(this.offScreenImage, 0, 0, this); } if (this.statLastMouse != var2) { if (var2 == 1) { this.drawText(var1, 2, this.offScreenGraphics); } else { this.drawText(var1, 1, this.offScreenGraphics); } this.statLastMouse = var2; Graphics var4 = this.appletGraphics; var4.drawImage(this.offScreenImage, 0, 0, this); } } public boolean handleEvent(Event var1) { switch (var1.id) { case 501: this.updateText(this.statLastOver, 1); return true; case 502: this.updateText(this.statLastOver, 0); if (this.statLastOver != -1 && (URL)this.parURL.elementAt(this.statLastOver) != null) { ((Applet)this).getAppletContext().showDocument((URL)this.parURL.elementAt(this.statLastOver), (String)this.parTargetFrame.elementAt(this.statLastOver)); } return true; case 503: case 506: this.updateText(this.getMouseOver(var1.x, var1.y), this.statLastMouse); return true; case 504: default: return super.handleEvent(var1); case 505: this.updateText(-1, this.statLastMouse); ((Applet)this).showStatus(""); return true; } } private int getMouseOver(int var1, int var2) { int var3 = -1; for(int var4 = 0; var4 < this.activeRectangle.size(); ++var4) { if (((Rectangle)this.activeRectangle.elementAt(var4)).inside(var1, var2)) { var3 = var4; } } return var3; } private void drawText(int var1, int var2, Graphics var3) { if (var1 != -1 && ((URL)this.parURL.elementAt(var1) != null || (URL)this.parURL.elementAt(var1) == null && var2 == 0)) { var3.setFont((Font)this.parFont.elementAt(var1)); switch (var2) { case 0: var3.setColor(new Color((Integer)this.parColor.elementAt(var1))); break; case 1: var3.setColor(new Color((Integer)this.parOverColor.elementAt(var1))); break; case 2: var3.setColor(new Color((Integer)this.parClickColor.elementAt(var1))); } Rectangle var4 = (Rectangle)this.activeRectangle.elementAt(var1); var3.drawString((String)this.parText.elementAt(var1), var4.x, var4.y + var4.height - (Integer)this.activeDescent.elementAt(var1)); } } private void delay(int var1) { try { Thread.sleep((long)var1); } catch (InterruptedException var2) { } } }